generateS3BucketName(
params):string
Defined in: src/utils/generate-s3-bucket-name/generate-s3-bucket-name.ts:46
Generates a standardised S3 bucket name using the provided components.
S3 buckets have specific naming requirements:
- Must be globally unique across all AWS accounts
- Must be between 3-63 characters long
- Must contain only lowercase letters, numbers, dots, and hyphens
- Must start and end with a letter or number
- Cannot contain uppercase characters or underscores
- Cannot be formatted as an IP address
The name is constructed using the format: <stage>-<service>-bucket[-<suffix>][-<region>]
and converted to lowercase. The 'bucket' resource type is automatically included.
Parameters
params
Omit<ResourceNameParts, "resource">
The components used to generate the S3 bucket name.
Returns
string
A lowercase, hyphenated S3 bucket name suitable for AWS usage.
Throws
If the generated name exceeds 63 characters or is less than 3 characters.
Examples
const bucketName = generateS3BucketName({ stage: 'dev', service: 'orders', suffix: 'images', region: 'us-east-1' });
// "dev-orders-bucket-images-us-east-1"
const bucketName = generateS3BucketName({ stage: 'prod', service: 'users' });
// "prod-users-bucket"
const bucketName = generateS3BucketName({ stage: 'staging', service: 'analytics', suffix: 'logs' });
// "staging-analytics-bucket-logs"